Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

.github/workflows/promote.yml claude/nightly-release-main-8a41cc (e1420077) Text, 10.57 KB

Tff7b72nameTb4b4b4: Ta5d6ffPromoteTa5d6ff Ta5d6ffRelease

Tff7b72onTb4b4b4:
Tff7b72workflow_callTb4b4b4:
Tff7b72inputsTb4b4b4:
Tff7b72base_versionTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffbaseTe6edf3 Ta5d6ffversionTe6edf3 Ta5d6ffforTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffreleaseTe6edf3 Ta5d6ff(e.g.,Te6edf3 Ta5d6ff2.3.0)Ta5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72tag_nameTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6fftagTe6edf3 Ta5d6ffthatTe6edf3 Ta5d6fftriggeredTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffreleaseTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72release_nameTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffdesiredTe6edf3 Ta5d6ffnameTe6edf3 Ta5d6ffforTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffGitHubTe6edf3 Ta5d6ffreleaseTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72final_tagTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6fffinalTe6edf3 Ta5d6fftagTe6edf3 Ta5d6ffforTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffreleaseTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72commit_shaTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffcommitTe6edf3 Ta5d6ffSHATe6edf3 Ta5d6fftoTe6edf3 Ta5d6fftagTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fffalse
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72channelTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffchannelTe6edf3 Ta5d6fftoTe6edf3 Ta5d6ffpromoteTe6edf3 Ta5d6fftoTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72from_channelTb4b4b4:
Tff7b72descriptionTb4b4b4: Ta5d6ff'Ta5d6ffTheTe6edf3 Ta5d6ffchannelTe6edf3 Ta5d6fftoTe6edf3 Ta5d6ffpromoteTe6edf3 Ta5d6fffromTa5d6ff'
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72typeTb4b4b4: Ta5d6ffstring
Tff7b72secretsTb4b4b4:
Tff7b72GSERVICESTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72KEYSTORETb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72KEYSTORE_FILENAMETb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72KEYSTORE_PROPERTIESTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72DATADOG_APPLICATION_IDTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72DATADOG_CLIENT_TOKENTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72GOOGLE_MAPS_API_KEYTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72GOOGLE_PLAY_JSON_KEYTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72GRADLE_ENCRYPTION_KEYTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fftrue
Tff7b72DISCORD_WEBHOOK_ANDROIDTb4b4b4:
Tff7b72requiredTb4b4b4: Ta5d6fffalse

Tff7b72concurrencyTb4b4b4:
Tff7b72groupTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.workflowTa5d6ff Ta5d6ff}}-${{Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72cancel-in-progressTb4b4b4: Ta5d6fftrue

Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffwrite
Tff7b72pull-requestsTb4b4b4: Ta5d6ffwrite
Tff7b72statusesTb4b4b4: Ta5d6ffwrite
Tff7b72id-tokenTb4b4b4: Ta5d6ffwrite
Tff7b72attestationsTb4b4b4: Ta5d6ffwrite

Tff7b72jobsTb4b4b4:
Tff7b72prepare-build-infoTb4b4b4:
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72outputsTb4b4b4:
Tff7b72APP_VERSION_NAMETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.prep_version.outputs.APP_VERSION_NAMETa5d6ff Ta5d6ff}}
Tff7b72APP_VERSION_CODETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsteps.calculate_version_code.outputs.versionCodeTa5d6ff Ta5d6ff}}
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckoutTa5d6ff Ta5d6ffcode
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v7.0.0
Tff7b72withTb4b4b4:
Tff7b72refTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.commit_shaTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72fetch-depthTb4b4b4: Ta5d6ff0
Tff7b72submodulesTb4b4b4: Ta5d6ff'Ta5d6ffrecursiveTa5d6ff'

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffPrepTa5d6ff Ta5d6ffAPP_VERSION_NAME
Tff7b72idTb4b4b4: Ta5d6ffprep_version
Tff7b72envTb4b4b4:
Tff7b72INPUT_TAG_NAMETb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72VERSION_NAME=$(echo $INPUT_TAG_NAME | sed 's/-.*//' | sed 's/v//')
Tff7b72echo "APP_VERSION_NAME=$VERSION_NAME" >> $GITHUB_OUTPUT
Tff7b72echo "Parsed Version: $VERSION_NAME"

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffExtractTa5d6ff Ta5d6ffVERSION_CODE_OFFSETTa5d6ff Ta5d6fffromTa5d6ff Ta5d6ffconfig.properties
Tff7b72idTb4b4b4: Ta5d6ffget_version_code_offset
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72OFFSET=$(grep '^VERSION_CODE_OFFSET=' config.properties | cut -d'=' -f2)
Tff7b72echo "VERSION_CODE_OFFSET=$OFFSET" >> $GITHUB_OUTPUT

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCalculateTa5d6ff Ta5d6ffVersionTa5d6ff Ta5d6ffCodeTa5d6ff Ta5d6fffromTa5d6ff Ta5d6ffGitTa5d6ff Ta5d6ffCommitTa5d6ff Ta5d6ffCount
Tff7b72idTb4b4b4: Ta5d6ffcalculate_version_code
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72COMMIT_COUNT=$(git rev-list --count HEAD)
Tff7b72OFFSET=${{ steps.get_version_code_offset.outputs.VERSION_CODE_OFFSET }}
Tff7b72VERSION_CODE=$((COMMIT_COUNT + OFFSET))
Tff7b72echo "versionCode=$VERSION_CODE" >> $GITHUB_OUTPUT
Tff7b72shellTb4b4b4: Ta5d6ffbash

Tff7b72promote-releaseTb4b4b4:
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72needsTb4b4b4: Tb4b4b4[ Te6edf3prepare-build-info Tb4b4b4]
Tff7b72envTb4b4b4:
Tff7b72FROM_TRACKTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.from_channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'closed'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'NewAlpha'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff(inputs.from_channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'open'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'beta'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff'internal')Ta5d6ff Ta5d6ff}}
Tff7b72TO_TRACKTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'closed'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'NewAlpha'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff(inputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'open'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'beta'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff'production')Ta5d6ff Ta5d6ff}}
Tff7b72USER_FRACTIONTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ff(inputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'production'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'0.1')Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff(inputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'open'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'0.5')Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff'1.0'Ta5d6ff Ta5d6ff}}
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckoutTa5d6ff Ta5d6ffcode
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v7.0.0
Tff7b72withTb4b4b4:
Tff7b72refTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.commit_shaTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffSetTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffRuby
Tff7b72usesTb4b4b4: Ta5d6ffruby/setup-ruby@v1
Tff7b72withTb4b4b4:
Tff7b72ruby-versionTb4b4b4: Ta5d6ff'Ta5d6ff4.0.4Ta5d6ff'
Tff7b72bundler-cacheTb4b4b4: Ta5d6fftrue

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffDecodeTa5d6ff Ta5d6ffPlayTa5d6ff Ta5d6ffStoreTa5d6ff Ta5d6ffcredentials
Tff7b72runTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff'${{Ta5d6ff Ta5d6ffsecrets.GOOGLE_PLAY_JSON_KEYTa5d6ff Ta5d6ff}}'Ta5d6ff Ta5d6ff>Ta5d6ff Ta5d6fffastlane/play-store-credentials.json

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffPromoteTa5d6ff Ta5d6fftoTa5d6ff Ta5d6ffnextTa5d6ff Ta5d6ffchannel
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72bundle exec fastlane supply \
Tff7b72--track "$FROM_TRACK" \
Tff7b72--track_promote_to "$TO_TRACK" \
Tff7b72--rollout "$USER_FRACTION" \
Tff7b72--changes_not_sent_for_review true \
Tff7b72--skip_upload_metadata \
Tff7b72--skip_upload_changelogs \
Tff7b72--skip_upload_images \
Tff7b72--skip_upload_screenshots

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCleanTa5d6ff Ta5d6ffupTa5d6ff Ta5d6ffcredentials
Tff7b72ifTb4b4b4: Ta5d6ffalways()
Tff7b72runTb4b4b4: Ta5d6ffrmTa5d6ff Ta5d6ff-fTa5d6ff Ta5d6fffastlane/play-store-credentials.json

Tff7b72update-github-releaseTb4b4b4:
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04-arm
Tff7b72needsTb4b4b4: Tb4b4b4[ Te6edf3prepare-build-infoTb4b4b4, Te6edf3promote-release Tb4b4b4]
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckoutTa5d6ff Ta5d6ffcode
Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v7.0.0
Tff7b72withTb4b4b4:
Tff7b72refTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.commit_shaTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6ffinputs.tag_nameTa5d6ff Ta5d6ff}}
Tff7b72fetch-depthTb4b4b4: Ta5d6ff0
Tff7b72submodulesTb4b4b4: Ta5d6ff'Ta5d6ffrecursiveTa5d6ff'

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffPushTa5d6ff Ta5d6ffGitTa5d6ff Ta5d6ffTagTa5d6ff Ta5d6ffonTa5d6ff Ta5d6ffSuccess
Tff7b72ifTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.commit_shaTa5d6ff Ta5d6ff!=Ta5d6ff Ta5d6ff''Ta5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72git tag ${{ inputs.final_tag }} ${{ inputs.commit_sha }}
Tff7b72git push origin ${{ inputs.final_tag }}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffUpdateTa5d6ff Ta5d6ffGitHubTa5d6ff Ta5d6ffReleaseTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffghTa5d6ff Ta5d6ffCLI
Tff7b72envTb4b4b4:
Tff7b72GH_TOKENTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.tokenTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72gh release edit ${{ inputs.tag_name }} \
Tff7b72--tag ${{ inputs.final_tag }} \
Tff7b72--title "${{ inputs.release_name }} (${{ needs.prepare-build-info.outputs.APP_VERSION_CODE }})" \
Tff7b72--draft=false \
Tff7b72--prerelease=${{ inputs.channel != 'production' }}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffStampTa5d6ff Ta5d6ffCHANGELOG.mdTa5d6ff Ta5d6ffforTa5d6ff Ta5d6ffrelease
Tff7b72ifTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.channelTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'production'Ta5d6ff Ta5d6ff}}
Tff7b72envTb4b4b4:
Tff7b72GH_TOKENTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.tokenTa5d6ff Ta5d6ff}}
Tff7b72TAGTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.final_tagTa5d6ff Ta5d6ff}}
Tff7b72VERSIONTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.base_versionTa5d6ff Ta5d6ff}}
Tff7b72REPOTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.repositoryTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72DATE=$(date -u +%Y-%m-%d)

Tff7b72# Checkout CHANGELOG.md from main (we're on a tag checkout)
Tff7b72git fetch origin main
Tff7b72git checkout -b "changelog/v${VERSION}" origin/main

Tff7b72# Find the previous production tag for the full-range notes
Tff7b72PREV_PROD=$(git tag --list 'v[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | grep -v "^v${VERSION}$" | head -1)

Tff7b72# Generate a single flat changelog for the entire release using GitHub API
Tff7b72FLAT_NOTES=""
Tff7b72if [ -n "$PREV_PROD" ]; then
Tff7b72FLAT_NOTES=$(gh api "repos/${REPO}/releases/generate-notes" \
Tff7b72-f tag_name="$TAG" \
Tff7b72-f target_commitish="$(git rev-parse "$TAG")" \
Tff7b72-f previous_tag_name="$PREV_PROD" \
Tff7b72--jq '.body' 2>/dev/null || true)

Tff7b72# Strip boilerplate
Tff7b72FLAT_NOTES=$(echo "$FLAT_NOTES" \
Tff7b72| sed '/^<!-- .* -->/d' \
Tff7b72| sed '/^## What'\''s Changed$/d' \
Tff7b72| sed '/^\*\*Full Changelog\*\*/d' \
Tff7b72| sed '/./,$!d' \
Tff7b72| sed -e :a -e '/^\n*$/{$d;N;ba}')
Tff7b72fi

Tff7b72# Build the versioned section and reset unreleased
Tff7b72python3 -c "
Tff7b72import sys
Tff7b72version, date, notes = sys.argv[1], sys.argv[2], sys.argv[3]
Tff7b72with open('CHANGELOG.md', 'r') as f:
Tff7b72content = f.read()

Tff7b72us = '<!-- UNRELEASED_START -->'
Tff7b72ue = '<!-- UNRELEASED_END -->'
Tff7b72rs = '<!-- RELEASED_START -->'

Tff7b72start = content.find(us)
Tff7b72end = content.find(ue)
Tff7b72rstart = content.find(rs)

Tff7b72if start == -1 or end == -1 or rstart == -1:
Tff7b72print('Markers not found in CHANGELOG.md')
Tff7b72sys.exit(1)

Tff7b72versioned = f'## [{version}] - {date}\n\n{notes}'
Tff7b72fresh = '## [Unreleased]\n\n*No changes yet.*'

Tff7b72new_content = (
Tff7b72content[:start + len(us)] + '\n' + fresh + '\n'
Tff7b72+ content[end:rstart + len(rs)] + '\n\n' + versioned + '\n'
Tff7b72+ content[rstart + len(rs):]
Tff7b72)

Tff7b72with open('CHANGELOG.md', 'w') as f:
Tff7b72f.write(new_content)
Tff7b72" "$VERSION" "$DATE" "$FLAT_NOTES"

Tff7b72git config user.name "github-actions[bot]"
Tff7b72git config user.email "github-actions[bot]@users.noreply.github.com"
Tff7b72git add CHANGELOG.md
Tff7b72git diff --cached --quiet || {
Tff7b72BRANCH="automation/changelog-v${VERSION}"
Tff7b72git checkout -B "$BRANCH"
Tff7b72git commit -m "docs: release CHANGELOG.md for v${VERSION}"
Tff7b72git push origin "$BRANCH" --force

Tff7b72gh pr create \
Tff7b72--title "docs: release CHANGELOG.md for v${VERSION}" \
Tff7b72--body "Automated changelog stamp for production release v${VERSION}." \
Tff7b72--head "$BRANCH" \
Tff7b72--base main \
Tff7b72--label "automation" \
Tff7b72--label "skip-changelog"

Tff7b72# Post required commit status so the PR isn't blocked
Tff7b72COMMIT_SHA=$(git rev-parse HEAD)
Tff7b72gh api "repos/${{ github.repository }}/statuses/${COMMIT_SHA}" \
Tff7b72-f state="success" \
Tff7b72-f context="Check Workflow Status" \
Tff7b72-f description="Skipped — changelog-only PR"
Tff7b72}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffNotifyTa5d6ff Ta5d6ffDiscord
Tff7b72ifTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.channelTa5d6ff Ta5d6ff!=Ta5d6ff Ta5d6ff'internal'Ta5d6ff Ta5d6ff}}
Tff7b72envTb4b4b4:
Tff7b72DISCORD_WEBHOOKTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsecrets.DISCORD_WEBHOOK_ANDROIDTa5d6ff Ta5d6ff}}
Tff7b72VERSIONTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.final_tagTa5d6ff Ta5d6ff}}
Tff7b72CHANNELTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffinputs.channelTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72if [[ -z "$DISCORD_WEBHOOK" ]]; then
Tff7b72echo "No Discord webhook provided. Skipping notification."
Tff7b72exit 0
Tff7b72fi

Tff7b72# Determine Track Name for Display
Tff7b72if [ "$CHANNEL" == "closed" ]; then TRACK="Alpha (Closed)"; fi
Tff7b72if [ "$CHANNEL" == "open" ]; then TRACK="Beta (Open)"; fi
Tff7b72if [ "$CHANNEL" == "production" ]; then TRACK="Production"; fi

Tff7b72# Construct JSON Payload
Tff7b72PAYLOAD=$(cat <<EOF
Tff7b72{
Tff7b72"content": null,
Tff7b72"embeds": [
Tff7b72{
Tff7b72"title": "🚀 New Android Release: $VERSION",
Tff7b72"description": "A new build has been promoted to the **$TRACK** track.",
Tff7b72"color": 5763719,
Tff7b72"fields": [
Tff7b72{
Tff7b72"name": "Track",
Tff7b72"value": "$TRACK",
Tff7b72"inline": true
Tff7b72},
Tff7b72{
Tff7b72"name": "Version",
Tff7b72"value": "$VERSION",
Tff7b72"inline": true
Tff7b72}
Tff7b72],
Tff7b72"url": "https://github.com/meshtastic/Meshtastic-Android/releases/tag/$VERSION"
Tff7b72}
Tff7b72]
Tff7b72}
Tff7b72EOF
Tff7b72)

Tff7b72curl -H "Content-Type: application/json" -d "$PAYLOAD" "$DISCORD_WEBHOOK"

Served by rngit 1.5.2 - Generated in 0.14s